home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 21 / Cream of the Crop 21 (Terry Blount) (October 1996).iso / doom / bmpdf.zip / FILM.TXT < prev    next >
Text File  |  1996-01-10  |  11KB  |  361 lines

  1. .FILM File Specs (DOS Name = .FLM)
  2. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  3. Single handedly worked out by Carl Kenner! (Andrew.Kenner@Unisa.Edu.Au)
  4. Anything in this file is purely speculation on my part, and might be
  5. completely untrue. I have had no contact with Lucas Arts.
  6. Addresses mentioned are hexadecimal. Values are decimal.
  7.  
  8. Film files contain the directions of what to do in a cutscene.
  9. Although they can also be used for dialog boxes, this is rare and should
  10. not bother you.
  11.  
  12. They are part of the LANDRU system developed by Ed "Kill'em" Kilham, and
  13. as such are only found in .LFD files. They are used in Dark Forces,
  14. X-Wing, Imperial Pursuit, B-Wing, TIE Fighter and Defender of the Empire.
  15.  
  16. Here is the format of the header:
  17.  
  18. 00:    Magic  (Integer)         Always equals 4
  19. 02:    FilmLength (Integer)     In clock ticks (about 1/10 of a second)
  20. 04:    ObjectCount (Integer)    Not including END
  21.  
  22. "Magic" may mean something, but it probably just identifies it as a FILM
  23. file.
  24.  
  25. A series of ObjectCount object blocks follows.
  26. Here is the format of each object block:
  27.  
  28. 00:    Extension (4 chars)        Block Type Name (see table)
  29. 04:    Name (8 chars)             File Name (see table)
  30. 0C:    TotalLength (Long Int)     Total length of Block (BlockLength + 22)
  31. 10:    BlockType (Integer)        (See Table)
  32. 12:    NumberOfCommands (Integer) Number Of Commands (including End command)
  33. 14:    BlockLength (Integer)      TotalLength - 22 (don't ask me why)
  34. 16:    ===== Command List ======  (see below)
  35.  
  36. If the object file doesn't exist you will get an error in a dialog box saying
  37. "Unable to load all items in cutscene _________"
  38.  
  39. ============================
  40. Block Types
  41. ----------------------------
  42. 01:    END/0
  43. 02:    VIEW
  44. 03:    DELT   ANIM   CUST
  45. 04:    PLTT
  46. 05:    VOIC
  47. ============================
  48.  
  49. ================================================================
  50. BlockNames
  51. ----------------------------------------------------------------
  52. VIEW:    "UNTITLED"  \  Maybe you can give the film a title,
  53. END:     "UNTITLED"  /  but nobody ever does, so I don't either.
  54. CUST:    "CUSTOM"
  55. Otherwise it is the filename
  56. ================================================================
  57.  
  58. Here is the format of each command:
  59.  
  60. 00: CommandLength (Integer)   Total length of the command
  61. 02: Command (Integer)         (See Table)
  62. 04: ParameterList (Integers)  (CommandLength-4) / 2 parameters
  63.  
  64. ====================================================
  65. Commands (decimal not hex)
  66. --------------- General Commands -------------------
  67. 0:  Unused ???
  68. 1:  Unused ???
  69. 2:  END ()
  70. 3:  *TIME* (timeframe)
  71. --------------- Type 3 Commands --------------------
  72. 4:  MOVE (x, y, 0, 0)
  73. 5:  SPEED (horizontal, vertical, 0, 0)
  74. 6:  LAYER (z)
  75. 7:  FRAME (n, ?0?)
  76. 8:  ANIMATE (direction, ?0?)
  77. 9:  CUE (n)
  78. 10: VAR (v) ???
  79. 11: WINDOW (xMin, yMin, xMax, yMax)
  80. 12: ?
  81. 13: SWITCH (OnOff)
  82. 14: ???? (1, 0/1)
  83. --------------- Pallette commands ----------------
  84. 15: PALETTE (0)
  85. 16: ?
  86. 17: ?
  87. ----------------- View Commands ------------------
  88. 18: CUT (c, t)
  89. 19: ?
  90. ----------------- Sound Commands -----------------
  91. 20: LOOP (0)
  92. 21: ?
  93. 22: ?
  94. 23: ?
  95. 24: PRELOAD (2/1)
  96. 25: SOUND (OnOff, volume, 0, 0)
  97. 26: ?
  98. 27: ?
  99. 28: STEREO (OnOff, volume, 0, 0, PanPosition, 0, 0)
  100. ====================================================
  101.  
  102. All .FILM files must have one VIEW block and it must be the first.
  103. It's name should be UNTITLED.
  104. There is also a END block at the end of the file. It is not counted
  105. in NumberOfObjects. It contains only the first part of the object block
  106. header. It has the same name as the VIEW block.
  107.  
  108. One or Two CUST blocks both named CUSTOM are optional. They are not 
  109. associated with files.
  110.  
  111.  
  112. Command Discriptions:
  113. ~~~~~~~~~~~~~~~~~~~~~
  114.  
  115. END ()
  116. ======
  117. Length: 4
  118. Number: 2
  119. Syntax: END
  120.  
  121. This command is allways the last command for an object.
  122.  
  123. *TIME* () 
  124. =========
  125. Length: 6
  126. Number: 3
  127. Syntax: *TIME* x
  128.     or  *TIME* x.x
  129.  
  130. This command is allways the first command for an object. It tells LANDRU
  131. when to do the following commands up to the next *TIME* command.
  132. The next *TIME* command tells it when to do the commands following it, etc.
  133. Any commands between 2 *TIME* commands will be done simultaneously (almost).
  134. *TIME* commands must come in chronological order otherwise the LANDRU system
  135. will hang (or give an error message?).
  136.  
  137. x is the time in clock ticks (about 1/10th of a second).
  138. x.x is the time in seconds approximately (decimal number). 
  139.  
  140. -----------------------------------------------------------------------------
  141. Type 3 Commands
  142. -----------------------------------------------------------------------------
  143. These commands may only be used on graphical objects or a CUSTOM object.
  144.  
  145. MOVE (x, y, 0, 0)
  146. =================
  147. length: 12 or 18
  148. number: 4
  149. Syntax: MOVE x y 0 0
  150.     or  MOVE x y 0 0 0 0 0
  151.     or  MOVETO x y 0 0
  152.     or  MOVETO x y 0 0 0 0 0
  153.  
  154. Moves the object to the coordinates (x,y).
  155. All objects are at the origin (0,0) at the start.
  156.  
  157. SPEED (right, down, 0, 0)
  158. =========================
  159. length: 12 or 18
  160. number: 5
  161. Syntax: SPEED right down 0 0
  162.     or  SPEED right down 0 0 0 0 0
  163.  
  164. Changes the objects horizontal speed to <right> and its veritcal speed to
  165. <down>. Negatives mean left and up respectively.
  166. The units are approximately decapixels per time frame, or something similar.
  167. Objects are stationary by default.
  168.  
  169. LAYER (z)
  170. =========
  171. length: 6
  172. number: 6
  173. Syntax: LAYER z
  174.  
  175. Changes the object's layer to z. The smaller or more negative <z> is the
  176. further forward it is. Objects with a low <z> move infront of objects with
  177. a high <z>.
  178. Objects allways start on layer 0.
  179. 100 is usually the background.
  180. *** I think that layer zero is done like the text crawl for scene #30 ***
  181.  
  182. FRAME (n, ?0?)
  183. ==============
  184. length: 8
  185. number: 7
  186. Syntax: FRAME n 0
  187. ? or ?  FRAME n 128
  188.  
  189. Displays the frame number <n> of a .ANIM object.
  190. If n is odd then frame <n>-1 will be drawn first then frame <n> will be
  191. drawn on top. If <n> is higher than the number of frames in a .ANIM then
  192. you will get an error message:
  193. " XACTOR.C: Value out of bounds. "
  194. or something similar.
  195. Animations start at frame 0.
  196.  
  197. ANIMATE (direction, ?0?)
  198. ========================
  199. length: 8
  200. number: 8
  201. Syntax: ANIMATE direction 0
  202. ??? or  ANIMATE direction 128
  203.  
  204. Direction may be one of the following:
  205.  0, OFF
  206.  1, ON, FORWARDS
  207. -1, BACKWARDS
  208.  
  209. This command starts a .ANIM object animating in the appropriate direction.
  210. .ANIMs start, by default, inanimate on frame 0.
  211.  
  212. CUE (n)
  213. =======
  214. length: 6
  215. number: 9
  216. Syntax: CUE n
  217.  
  218. If used in a CUST object in Dark Forces then it sends a cue to iMuse to
  219. start the music. This corresponds to the cue number (which is only a comment)
  220. in the CUTMUSE.TXT file under the SEQUENCE specified in the CUTSCENE.LST
  221. file. Music is not a part of Landru so it is found in GOB files not LFD
  222. files. This makes it HARD to add music to cutscenes.
  223.  
  224. If used in a CUST object in X-Wing or TIE Fighter then it handles all sorts
  225. of goodies, such as speech, text and music. The VAR command also plays an
  226. important role.
  227.  
  228. If used in a graphical object then it probably does nothing useful.
  229.  
  230. VAR (n)
  231. =======
  232. length: 6
  233. number: 10
  234. Syntax: VAR n
  235.  
  236. Unknown. Used mainly in X-Wing, TIE Fighter CUST objects.
  237.  
  238. WINDOW (xMin, yMin, xMax, yMax)
  239. ===============================
  240. length: 12
  241. number: 11
  242. Syntax: WINDOW xMin yMin xMax yMax
  243.  
  244. Probably clips and limits the displayed image to the specified region.
  245. Useful to make stars fit a window, when other parts are transparent.
  246.  
  247. SWITCH (OnOff)                          \    |    / 
  248. ==============                            \  |  / 
  249. length: 6                              -  -  *  -  -
  250. number: 13                                /  |  \
  251. Syntax: SWITCH OnOff                    /    |    \ 
  252.  
  253. OnOff may be one of the following:
  254. 0, OFF
  255. 1, ON
  256.  
  257. This command is VERY important. It switches the graphic on or off.
  258. When graphics are switched off they are not displayed.
  259. Graphics are SWITCHED OFF BY DEFAULT.
  260. Objects should always be switched on at the start and switched off at the
  261. en